package com.shawn.kaoshixingautobot;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonType;
import javafx.stage.Stage;
import com.shawn.kaoshixingautobot.controller.AutoExamController;

import java.io.IOException;
import java.util.Optional;

public class AutoExamApp extends Application {

    private final static String LOGO_PATH = "/images/icon.png";

    @Override
    public void start(Stage primaryStage) throws IOException {
        FXMLLoader loader = new FXMLLoader(getClass().getResource("/com/shawn/kaoshixingautobot/AutoExamUI.fxml"));
        javafx.scene.image.Image logo = new javafx.scene.image.Image(getClass().getResourceAsStream(LOGO_PATH));
        primaryStage.getIcons().add(logo);
        primaryStage.setTitle("考试星自动刷题助手");
        Scene mainScene = new Scene(loader.load(), 800, 600);
        primaryStage.setScene(mainScene);
        primaryStage.setResizable(false);

        // 获取控制器实例
        AutoExamController controller = loader.getController();

        // 添加窗口关闭事件处理
        primaryStage.setOnCloseRequest(event -> {
            // 检查是否正在刷题
            if (controller.isRunning()) {
                // 显示确认对话框
                Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
                alert.setTitle("确认");
                alert.setHeaderText(null);
                alert.setContentText("刷题中，建议耐心等待刷题完成，是否强行停止刷题？");
                alert.initOwner(primaryStage);

                // 等待用户选择
                Optional<ButtonType> result = alert.showAndWait();
                if (result.isPresent() && result.get() == ButtonType.OK) {
                    // 用户点击"是"，先停止刷题任务，再强制关闭程序
                    controller.stopRunning(); // 假设控制器有停止任务的方法，需在AutoExamController中实现
                    javafx.application.Platform.exit(); // 强制退出JavaFX应用
                    System.exit(0); // 确保JVM完全退出（可选，根据实际情况是否需要）
                } else {
                    // 用户点击"否"，取消关闭操作
                    event.consume();
                }
            }
            // 如果没有在刷题，直接关闭
        });

        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}